home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / infofile.d < prev    next >
Text File  |  1997-10-26  |  3KB  |  89 lines

  1. DEFINITION MODULE Infofiles;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS;
  4.  
  5. IMPORT Lists;
  6.  
  7. (*$Z+*)
  8. TYPE infMode = (IFIRST, INEXT);
  9.  
  10.      tCrcState = (cNa, cWithCrc, cNoCrc);
  11.  
  12.      infEntry = RECORD
  13.                   CASE : BOOLEAN OF
  14.                      TRUE:  crc   : CARDINAL;
  15.                             new   : BOOLEAN;
  16.                             avail : BOOLEAN;
  17.                             isMaus: BOOLEAN;
  18.                             ordered: BOOLEAN;
  19.                             orderIntervall: INTEGER; (* -1: Einmalig, 0: Immer, 1: t„glich *)
  20.                             lastOrdered: LONGCARD; (* Datum in Tagen seit dem 1.1.1900 *)
  21.                             selected: BOOLEAN;
  22.                             hasCrc: tCrcState;
  23.                             res   : CARDINAL;
  24.                             mausShort : ARRAY [0..9] OF CHAR;
  25.                             mausName  : ARRAY [0..255] OF CHAR;
  26.                             filename  : ARRAY [0..255] OF CHAR; |
  27.                      FALSE: data: ARRAY [0..1023] OF CHAR; |
  28.                   END;
  29.                 END;
  30.   
  31.     infEntryPtr = POINTER TO infEntry;
  32.  
  33. VAR infList : Lists.List;
  34.  
  35. PROCEDURE IsNeededInfo (REF str: ARRAY OF CHAR): BOOLEAN;
  36. (* Gibt zurck, ob es ein Infofile ist, das von CAT immer 
  37.  * ben”tigt wird
  38.  *)
  39.  
  40. PROCEDURE InfoLoaded(): BOOLEAN;
  41.  
  42. PROCEDURE LoadInfoInf(dbChanged, clearNew : BOOLEAN);
  43.  
  44. PROCEDURE SaveInfoInf();
  45.  
  46. PROCEDURE SetInfoCrc (REF inf : ARRAY OF CHAR; VAR str : ARRAY OF CHAR);
  47. (* Setzt die CRC fr das Infofile inf. Falls das Infofile nicht
  48.  * gefunden wird, dann wird gar nichts gesetzt.
  49.  *)
  50.  
  51. PROCEDURE GetInfoCrc (VAR str : ARRAY OF CHAR; mode : infMode) : BOOLEAN;
  52. (* Liefert den Namen eines Infofiles inkl. Crc zurck. Bei Mode = IFIRST wird das erste Infofile
  53.  * zurckgeliefert, bei Mode = INEXT wird der n„chste zurckgeliefert.
  54.  * Wenn alle Infostrings geliefert wurden, dann wird FALSE zurckgegeben 
  55.  * (kann auch bei IFIRST passieren).
  56.  * Zwischen den Aufrufen sollte nicht anders auf die Liste
  57.  * zugegriffen werden, da ansonsten evtl. nicht alle angefordert
  58.  * werden oder einige doppelt angefordert werden.
  59.  *)
  60.  
  61. PROCEDURE AddEntry (isMausInf, order, avail, new : BOOLEAN; crc : CARDINAL; inter : INTEGER;
  62.                     lastOrder : LONGCARD; REF short, name, file : ARRAY OF CHAR;
  63.                     saveInf : BOOLEAN; withCrc: tCrcState): BOOLEAN;
  64. (* Fgt einen Eintrag fr ein Infofile an die Liste an.
  65.  * Bei einem Mausinfofile ist die Angabe des Namens berflssig,
  66.  * da dort immer das Krzel mit der Extension .TXT genommen wird.
  67.  *)
  68.  
  69. PROCEDURE GetInfoFilename (REF short: ARRAY OF CHAR; 
  70.                            VAR fname : ARRAY OF CHAR): BOOLEAN;
  71. (* Liefert zum Krzel des Infofiles den Filenamen. 
  72.  * FALSE: Infofile nicht vorhanden 
  73.  *)
  74.  
  75. PROCEDURE IsInfoFile (REF short: ARRAY OF CHAR; onlyMaus: BOOLEAN): BOOLEAN;
  76. (* Liefert zurck, ob ein Krzel ein Infofile ist oder nicht 
  77.  *)
  78.  
  79. PROCEDURE TestDirectParse (REF short: ARRAY OF CHAR);
  80. (* Wird vom Parser aufgerufen, wenn ein Infofile geschlossen wurde. Falls es 
  81.  * wichtige Informationen enth„lt (ITG), wird es dann direkt geparst
  82.  *)
  83.  
  84. PROCEDURE BuildName (info: ADDRESS; VAR fname : ARRAY OF CHAR): BOOLEAN;
  85.  
  86. PROCEDURE SortList (VAR l : Lists.List);                        (* exported *)
  87.  
  88. END Infofiles.
  89.